home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64-128Toolkit / MSD-DU10.ARC / MSD - PART 10 < prev    next >
Encoding:
Text File  |  2019-04-13  |  4.7 KB  |  81 lines

  1. ║CM:MSD - PART 10
  2. ║LM21:RM70:PP66:PG60
  3. ║P#19
  4. ║FT1:,,╨AGE <>
  5. ║AI-16
  6.        ╬┼╫─╔╥   ┬EGIN A NEW DIRECTORY LISTING
  7.  
  8. $├6├├           ╩╙╥ ┴╒╘╧╔ [$├54╞] TO INITIALIZE THE DISKETTE.
  9. $├6├╞           ╩╙╥ ╥┼─┬┴═ [$┼─89] TO OBTAIN THE ┬┴═.
  10. $├6─2           ╩╙╥ ┬╠╦╬┬ [$├6├1] TO BLANK THE NAME AREA.
  11. $├6─5           ╙ET ╘0 [$48] TO $╞╞.
  12. $├6─9           ╙ET ╬┬╘┼═╨ [$4├─┬/$4├─├] TO ─╥╓╬╒═ [$54]/$00 RESPECTIVELY.  ╘HIS CAUSES THE DRIVE NUMBER TO BE LISTED JUST PRIOR TO THE DISK NAME.
  13. $├6┼3           ╩╙╥ ╙┼╠┬┴═ [$┼─┴8] TO SET ┬═╨╬╘ [$46-$47].
  14. $├6┼6           ╙ET ─╔╥┬╒╞ [$69/$6┴] TO ─╙╦╬┴═ [$╞┼6┼]/┬═╨╬╘+1 [$47] SO THAT IT POINTS TO THE START OF THE DISK NAME IN THE ┬┴═ AREA.
  15. $├6┼╞           ╙ET .┘ TO $16, THE OFFSET OF THE FORMAT TYPE.
  16. $├6╞1           ╧BTAIN THE FORMAT TYPE FROM (─╔╥┬╒╞),┘ [($69),┘] AND IF IT IS $┴0 (SHIFTED SPACE) THEN SET IT TO $31 (1).
  17. $├6╞9           ┴ ┬╔╘ ($2├) INSTRUCTION TO CONCEAL ╬─10.
  18. $├6╞┴  ╬─10     ╠OAD .┴ FROM (─╔╥┬╒╞),┘ [($69),┘] TO OBTAIN THE CURRENT CHARACTER FROM THE DISK NAME.
  19. $├6╞├           ╔F IT IS NOT $┴0 (SHIFTED SPACE) THEN BRANCH TO ╬─20.
  20. $├700           ╙ET .┴ TO $20 (SPACE).
  21. $├702  ╬─20     ╙AVE THE CHARACTER AT ╬┴═┬╒╞+2,┘ [$4┼42,┘].
  22. $├705           ─ECREMENT .┘ TO THE PREVIOUS CHARACTER AND IF      .┘ >= 0 THEN LOOP BACK TO ╬─10 TO PROCESS THE NEXT CHARACTER.
  23. $├708           ╙ET ╬┴═┬╒╞ [$4┼40] TO $12 (REVERSE ON) SO THE DISK NAME PRINTS IN REVERSE VIDEO.
  24. $├70─           ╨UT $22 (") AT BOTH ╬┴═┬╒╞+1 [$4┼41] AND ╬┴═┬╒╞+$12 [$4┼52].
  25. $├715           ╨UT A SPACE AT ╬┴═┬╒╞+$13 [$4┼53] AND RETURN.
  26.  
  27.  
  28.  
  29.        ═╙╟╞╥┼   ╙ET UP ┬╠╧├╦╙ ╞╥┼┼ MESSAGE
  30.  
  31. $├71┬           ╩╙╥ ┬╠╦╬┬ [$├6├1] TO BLANK THE NAME BUFFER.
  32. $├71┼           ├OPY ╞╥┼═╙╟ [$├72├...] TO ╬┴═┬╒╞ [$4┼40...].
  33. $├729           ╩UMP TO ╬╒═╞╥┼ [$┼├┬8] TO DETERMINE THE NUMBER OF BLOCKS WHICH ARE FREE.
  34.  
  35.  
  36.  
  37.        ╞╥┼═╙╟   ┬╠╧├╦╙ ╞╥┼┼ ═┼╙╙┴╟┼ STRING
  38.  
  39. $├72├           ╙TRING "┬╠╧├╦╙ ╞╥┼┼.".
  40.  
  41.  
  42.  
  43.        ╙├╥╘├╚   ╙CRATCH ONE OR MORE FILES
  44.  
  45. $├738           ╩╙╥ ╞╙1╙┼╘ [$├2┬2] TO SET THE FILE TYPE.
  46. $├73┬           ╩╙╥ ┴╠╠─╥╙ [$├23├] TO SET UP DRIVE NUMBERS.
  47. $├73┼           ╩╙╥ ╧╨╘╙├╚ [$├2┼0] TO DETERMINE OPTIMAL DISK SEARCH PATTERN.
  48. $├741           ├LEAR ╥0 [$5┬].  ╘HIS VARIABLE IS USED TO COUNT THE NUMBER OF FILES THAT WERE DELETED.
  49. $├745           ╩╙╥ ╞╞╙╘ [$├3┴2] TO FIND THE FIRST DIRECTORY ENTRY WHICH MATCHES THE FILE NAME.
  50. ║FP
  51. $├748           ╔F NO ENTRIES MATCH THEN BRANCH TO ╙├30.
  52.        ╬OTE:    ╘HE NEXT PIECE OF CODE PREVENTS UNCLOSED FILES FROM BEING SCRATCHED.
  53. $├74┴  ╙├15     ╩╙╥ ╘╙╘├╚╬ [$──22] TO SEE IF THE FILE IS CURRENTLY ACTIVE IN THE INDEX TABLES.
  54. $├74─           ╔F IT IS THEN BRANCH TO ╙├25 TO LOOK FOR ANOTHER FILE TO BE DELETED.
  55.        ╬OTE:    ╘HE NEXT PIECE OF CODE PREVENTS LOCKED FILES FROM BEING SCRATCHED.
  56. $├74╞           ╧BTAIN (─╔╥┬╒╞),┘ [($69),┘], THE FILE STATUS AND TYPE, FROM THE DIRECTORY ENTRY.
  57. $├753           ┴╬─ IT WITH $40 (LOCK BIT POSITION) AND BRANCH TO ╙├25 IF THE LOCK BIT IS SET.
  58. $├757           ╩╙╥ ─┼╠─╔╥ [$├7┬┬] TO DELETE THE ENTRY.
  59. $├75┴           ╠OAD .┴ WITH THE STARTING TRACK FOR SIDE SECTORS AND BRANCH TO ╙├17 IF ZERO.  ╧NLY RELATIVE FILES SHOULD HAVE SIDE SECTORS.
  60. $├760           ╙AVE .┴ IN ╘╥┴├╦ [$55] AND PUT THE SIDE SECTOR INTO ╙┼├╘╧╥ [$56].
  61. $├767           ╩╙╥ ─┼╠╞╔╠ [$├793] TO RELEASE THE SIDE SECTOR FILE.
  62.        ╬OTE:    ╬EXT PIECE OF CODE PREVENTS SCRATCHING OF A FILE WHICH HAS REPLACEMENT INCOMPLETE.
  63. $├76┴  ╙├17     ╠OAD .┴ FROM ┼╬╘╞╬─ [$4├┬5], THE INDEX OF THE FILE NAME WHICH MATCHES THE DIRECTORY ENTRY.
  64. $├76─           ╔F ╨┴╘╘┘╨,╪ [$4├71,╪] ┴╬─┼─ WITH $20 IS SET (IE. THE REPLACEMENT IN PROGRESS BIT) THEN DO NOT DELETE THE FILE BY BRANCHING TO ╙├20.
  65. $├774           ╙ET UP ╘╥┴├╦ [$55] FROM ╞╔╠╘╥╦,╪ [$4┼36,╪] AND ╙┼├╘╧╥ [$56] FROM ╞╔╠╙┼├,╪ [$4┼3┬,╪] TO POINT TO THE START OF THE FILE.
  66. $├77┼           ╩╙╥ ─┼╠╞╔╠ [$├793] TO DELETE THE FILE.
  67. $├781  ╙├20     ╔NCREMENT ╥0 [$5┬], THE FILES SCRATCHED COUNTER.
  68. $├783  ╙├25     ╩╙╥ ╞╞╥┼ [$├398] TO FIND THE NEXT FILE TO BE DELETED.
  69. $├786           ╔F A MATCH WAS FOUND THEN BRANCH BACK TO ╙├15 TO DELETE IT IF POSSIBLE.
  70. $├788  ╙├30     ├OPY ╥0 [$5┬], FILES DELETED COUNTER, TO THE      ╘╥┴├╦ [$55] NUMBER.  ├LEAR .┘ AND JUMP TO      ╙├╥┼╬─ [$├0──].  ╘HIS RESULTS IN THE TRACK # PART OF THE ERROR MESSAGE INDICATING THE NUMBER OF FILES THAT WERE DELETED.
  71.  
  72.  
  73.  
  74.        ─┼╠╞╔╠   ─ELETE A FILE STARTING AT ╘╥┴├╦, ╙┼├╘╧╥
  75.  
  76. $├793           ╩╙╥ ╞╥┼╘╙ [$┼├─8] TO MARK THIS TRACK AND SECTOR AS FREE.
  77. $├796           ╩╙╥ ╧╨╬╔╥─ [$─4─┼] TO OPEN A READ CHANNEL AND OBTAIN A BLOCK OF THE FILE.
  78. $├799  ─┼╠2     ╠OAD .┴ WITH ZERO AND ╩╙╥ ╙┼╘╨╬╘ [$─533] TO SET ─╔╥┬╒╞ [$69/$6┴] TO POINT TO BYTE 0 OF THIS BLOCK.
  79. $├79┼           ╩╙╥ ╥─┬┘╘ [$─211] TO GET THE TRACK LINK AND SAVE IT IN ╘╥┴├╦ [$55].
  80. $├7┴3           ╩╙╥ ╥─┬┘╘ [$─211] TO GET THE SECTOR LINK AND SAVE IT IN ╙┼├╘╧╥ [$56].
  81.